﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GrayParrot.Caching
{
    public interface ICache
    {
        void Add<T>(string key, T value);
        void Add<T>(string key, T value, DateTimeOffset expiration);
        void Add<T>(string key, string region, T value);
        void Add<T>(string key, string region, T value, DateTimeOffset expiration);
        void Update<T>(string key, T value);
        void Update<T>(string key, string region, T value);
        void Remove(string key);
        void Remove(string key, string region);
        void Clear();
        void ClearRegion(string region);
        T Get<T>(string key);
        T Get<T>(string key, string region);
    }
}
